package com.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.beans.Student;
import com.controller.form.StudentVo;
import com.mapper.StudentMapper;
import com.service.IStudentService;
import com.utils.PageUtils;

@Service
@Transactional
public class StudentService implements IStudentService{

	// 注入studentmapper
	@Autowired
	private StudentMapper studentMapper;
	
	/**
	 *  Description:注册学生
	 *  @author Sirius  DateTime 2019年7月24日 上午9:22:10
	 *  @param student
	 */
	@Override
	public void register(Student student) {
		System.out.println();
		studentMapper.register(student);
	}

	// 获取分页数据
	@Override
	public PageUtils<Student> getStuListByPage(int pageindex) {
		int pagesize = 5;
		int count = studentMapper.getCount(); //总条数
		int pageCount = count%pagesize==0?count/pagesize:count/pagesize+1;
		// 设置属性
		PageUtils<Student> pageUtils = new PageUtils<>();
		pageUtils.setPagesize(pagesize);
		pageUtils.setPageindex(pageindex);
		
		pageUtils.setTotal(count);
		pageUtils.setPagecount(pageCount);
		pageindex = (pageindex-1)*pagesize;
		// 获取集合
		List<Student> list = studentMapper.getByPage(pageindex, pagesize);
		// 设置集合
		pageUtils.setRows(list);
		
		return pageUtils;
	}

	
	
	/**
	 *  Description:普通删除学生
	 *  @author Sirius  DateTime 2019年7月24日 下午2:59:34
	 *  @param id
	 */
	@Override
	public void deleteStu(int id) {
		studentMapper.deleteStu(id);
	}

	
	
	/**
	 *  Description:查询学生信息
	 *  @author Sirius  DateTime 2019年7月24日 下午3:09:26
	 *  @param id
	 *  @return
	 */
	@Override
	public Student getStuById(int id) {
		return studentMapper.getStuById(id);
	}

	
	
	/**
	 *  Description:修改学生信息
	 *  @author Sirius  DateTime 2019年7月24日 下午3:43:53
	 *  @param student
	 */
	@Override
	public void stuUpdate(Student student) {
		studentMapper.stuUpdate(student);
	}

	// 根据条件查询学生
	@Override
	public PageUtils<Student> getStuByLike(StudentVo student) {
		
		int pageindex = student.getPageindex();
		int pagesize = student.getPagesize();
		int count = studentMapper.getCountByLike(student); //总条数
		int pageCount = count%pagesize==0?count/pagesize:count/pagesize+1;
		// 设置属性
		PageUtils<Student> pageUtils = new PageUtils<>();
		pageUtils.setPagesize(pagesize);
		pageUtils.setPageindex(pageindex);
		
		pageUtils.setTotal(count);
		pageUtils.setPagecount(pageCount);
		pageindex = (pageindex-1)*pagesize;
		student.setPageindex(pageindex);
		// 获取集合
		List<Student> list = studentMapper.getStuByLike(student);
		// 设置集合
		pageUtils.setRows(list);
		
		return pageUtils;
	}

}
